Software as a Service (“SaaS”) business models have seen a steady rise in the past few years, especially in the realm of enterprise software companies. SaaS refers to a business model in which software may be licensed to one or more business customers on a subscription basis or some other type of payment model and is typically centrally hosted in the cloud. SaaS is typically accessed by a user through a web browser. One of the chief advantages of using SaaS business models is that the burden and cost related to maintenance and support is removed or minimized for the business, and instead placed on the SaaS provider (e.g., Oracle Inc., etc.) instead.
By using SaaS platforms, businesses can access the required software service via a remote server hosting the software service and use the software service to collect and analyze transactional and business-related data in a centralized location. One of the key functionalities that many businesses need and utilize heavily is historical trending/analysis functionality. Businesses may benefit from analyzing past business records, or data collected over time. Analyzing business records (e.g., sales opportunities, sales numbers, revenue, etc.) over time may lead to valuable insights and may help businesses strategize business tactics for the present and future. In the context of SaaS applications, this may pose a set of unique challenges.
A SaaS application is typically accessed by multiple business customers, who all access and interact with the application through a common user interface. Although each of the business customer uses the same interface, each business customer is directed (e.g., through an authentication process, etc.) to a dedicated section of the SaaS platform to interact and use the software for their own unique needs. Of course, this is also important for security and privacy purposes so that data associated with one business customer is not accessed by another business customer. To this end, data associated with each business customer or account is directed to a separate section of a shared database.
Referring now to FIG. 1, FIG. 1 is an example of a typical architecture of a SaaS application. As shown in FIG. 1, the customer (e.g., a business, sales administrator of a particular business account, etc.) may access the SaaS platform through a mobile phone 120, a web browser 122, an Outlook® browser 124 etc., which connects to a cloud network 110. As shown in FIG. 1, the users all interact with the application through a common user interface 102. However, data associated with each of the customers is stored in a separate section of a shared database 106. For example, 106a refers to a database table unique to customer A, 106b refers to a database table unique to customer B and so on. It should be appreciated that the SaaS application may be used by hundreds of business customers; thus, the same database 106 is used to store and retrieve data for all the business customers, albeit in different sections. This type of SaaS architecture is typically referred to as a multi-tenant model.
In the context of historical trending, the multi-tenant model may pose a problem when a customer wants to run a complex query to retrieve desired historical information about his company. For example, a customer may want to analyze how sales opportunities have changed over time. Given that the same database 106 is used to store information for all the business customers, running a complex query on database table 106A invariably affects the speed and performance of the entire database, and may adversely affect performance for the remaining business customers. Thus, in most cases, most SaaS providers limit historical trending capability to a very simple query, or limit the time for which historical trending may be performed. As a result, customers are unable to successfully leverage data collected over time to analyze historical trends, and thus, may be unable to gain valuable insights on their business performance.